//结构体方法继承与重写
package extendtest

import (
	"fmt"
)

type Annimal struct {
}

//所有使用匿名Annimal的结构体会继承此方法
func (p *Annimal) say() {
	fmt.Println("i'm Annimal")
}

type Dog struct {
	Annimal //继承属性字段
}

//重写继承的方法
func (p *Dog) say() {
	p.Annimal.say()
	fmt.Println("i'm Dog")
}

func TestMethod() {
	dog := new(Dog)
	dog.say()
}
